/**
 * 复制相关工具函数
 */
import { ElMessage } from 'element-plus'

/**
 * 添加文章复制时的版权信息
 * @param {HTMLElement} contentElement - 文章内容所在的DOM元素
 * @param {Object} articleInfo - 文章信息对象
 * @param {string} articleInfo.title - 文章标题
 * @param {string} articleInfo.url - 文章链接
 * @param {string} articleInfo.author - 文章作者
 * @param {number} minLength - 触发版权信息添加的最小内容长度(默认30)
 */
export function addCopyrightInfo(contentElement, articleInfo = {}, minLength = 30) {
  if (!contentElement) return

  document.addEventListener('copy', (event) => {
    // 只在文章内容区域内进行处理
    const selection = window.getSelection()
    const selectedText = selection.toString()
    
    // 只有当选择的文本长度超过阈值，且在指定区域内才添加版权信息
    if (selectedText && 
        selectedText.length > minLength && 
        contentElement.contains(selection.anchorNode)) {
      // 阻止默认复制行为
      event.preventDefault()
      
      // 构建新的复制内容，添加版权信息
      const title = articleInfo.title || document.title
      const url = articleInfo.url || window.location.href
      const author = articleInfo.author || '博主'
      const copyright = `${selectedText}

------
※ 作者：${author}
※ 来源：${title}
※ 链接：${url}
※ 版权声明：本文为博主原创文章，遵循CC 4.0 BY-SA版权协议，转载请附上原文出处链接及本声明。
※ 免责声明：内容可能来源于网络，仅供参考，如有侵权请联系删除。若发现内容有误，欢迎指正。`
      
      // 将新内容写入剪贴板
      event.clipboardData.setData('text/plain', copyright)
      
      // 显示复制成功提示
      ElMessage.success('已复制并自动添加原文链接')
    }
  })
}

/**
 * 移除文章复制时添加的版权信息监听器
 */
export function removeCopyrightListener() {
  // 如果需要在组件卸载时移除事件监听，可以使用这个函数
  // 注意：由于我们无法直接引用原来的事件处理函数，
  // 这个函数实际上无法单独移除特定的事件监听器
  // 这里提供一个占位函数，实际使用时可能需要更复杂的处理
} 